package banco;

import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import javax.swing.JOptionPane;

public class ServicoJavaCidadeEstado {

	@SuppressWarnings("unchecked")
	public String driver = "org.postgresql.Driver";
	public String url = "jdbc:postgresql://localhost:5432/gda";
	public String usuario = "postgres";
	public String senha = "1";
	public Connection conexao;
	public Statement statement;
	public ResultSet resultset;
	//===============================================================================================================
	public void conexao()
	{
	 try
	   {
		   Class.forName(driver);
		   conexao = DriverManager.getConnection(url,usuario, senha);		    
		//   JOptionPane.showMessageDialog(null, "Conectou com sucesso");

	   }
	   catch(ClassNotFoundException Driver)
	   {
		   JOptionPane.showMessageDialog(null, "Driver do banco não foi localizado: "+Driver);
	   }
	   catch(SQLException Banco)
	   {
		   JOptionPane.showMessageDialog(null, "Erro de manipulação do banco: "+Banco);
	   }
	}
	
	
	//===============================================================================================================
	@SuppressWarnings("unchecked")
	public List listar_cidadeEstado()
	{
	conexao();
	List lista_estado = new ArrayList();
	try
	   {
		   statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
//		   resultset = statement.executeQuery("select * from cidade");
		   resultset = statement.executeQuery("select * from cidade FULL JOIN estado on cidade.id_estado_estado = estado.id_estado");
		  while (resultset.next())
		  {
			  HashMap hashmap_estado = new HashMap();
			  hashmap_estado.put("id",   resultset.getString("id"));
			  hashmap_estado.put("nome", resultset.getString("nome"));
			//  hashmap_estado.put("id_estado",    					resultset.getString("id_estado"));
			  hashmap_estado.put("nome_estado",    					resultset.getString("nome_estado"));
			  hashmap_estado.put("sigla_estado",    					resultset.getString("sigla_estado"));
			  
					  
			  lista_estado.add(hashmap_estado);
		  }
	   }
	   catch(SQLException Banco)
	   {
		   JOptionPane.showMessageDialog(null, "Erro de manipulação do banco: "+Banco);
	   }
	   //JOptionPane.showMessageDialog(null,"vai retornar");
	   return lista_estado;
	}
//=====================================================================================================================
	public List listar_estado()
	{
	conexao();
	List lista = new ArrayList();
	try
	   {
		   statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
		   resultset = statement.executeQuery("select * from estado");
//		   resultset = statement.executeQuery("select * from cidade FULL JOIN estado on cidade.id_estado_estado = estado.id_estado");
		  while (resultset.next())
		  {
			  HashMap hashmap_estado2 = new HashMap();
			  hashmap_estado2.put("id_estado",   resultset.getString("id_estado"));
			  hashmap_estado2.put("nome_estado", resultset.getString("nome_estado"));
			//  hashmap_estado2.put("id_estado",    					resultset.getString("id_estado"));
	//		  hashmap_estado2.put("nome_estado",    					resultset.getString("nome_estado"));
			  hashmap_estado2.put("sigla_estado",    					resultset.getString("sigla_estado"));
			  
					  
			  lista.add(hashmap_estado2);
		  }
	   }
	   catch(SQLException Banco)
	   {
		   JOptionPane.showMessageDialog(null, "Erro de manipulação do banco: "+Banco);
	   }
	   //JOptionPane.showMessageDialog(null,"vai retornar EZSTADO");
	   return lista;
	}
	
//=======================================================================================================================	
}
